#include "../header.h"



/**
 * @函数原型: off_t lseek(int fd, off_t offset, int whence);
 * @函数功能: 重新定位文件读写指针.
 * @参数说明: 
 * @       参数1: fd 文件描述符
 * @       参数2: offset:偏移量:  正 负.
 * @       参数3: whence : SEEK_SET : 文件开头  SEEK_CUR:当前位置  SEEK_END:文件末尾
 * @返回值: 当前位置相对文件开头的 字节个数。
 */
int main(int argc, char const *argv[])
{
    int fd = open("stux.dat",O_RDONLY);
    printf("fd = %d\n",fd);

    int unum = strlen("hello linux");
    printf("unum = %d\n",unum);
    unum = 2*unum + 4 + 1;
    //是否可以直接把结构体读出来？
    int offlen = lseek(fd,unum,SEEK_SET);
    //offlen 的数值就是  偏移之后与文件开头的字节数目。
    printf("offlen = %d\n",offlen);
    car_t cark = {0};
    int readlen = read(fd,&cark,sizeof(cark));
    printf("readlen = %d\tcark:%s-%d\n",readlen,cark.name,cark.price);

    //lseek 
    lseek(fd,0,SEEK_END);
    lseek(fd,-20,SEEK_CUR);
    car_t carl = {0};
    read(fd,&carl,sizeof(carl));
    printf("readlen = %d\tcarl:%s-%d\n",readlen,carl.name,carl.price);

    close(fd);
    return 0;
}
